﻿Imports System.IO
Imports ComponentAce.Compression.ZipForge
Imports ComponentAce.Compression.Archiver

Public Class frmSeleccionarRespaldo

    Dim archivoBaseDatos As String = Environment.CurrentDirectory + "\database\database.accdb"

    Private Sub btnRespaldo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRespaldo.Click

        Dim folderGuardarRespaldo As String

        Dim fechaHoraRespaldo As String = DateTime.Now.ToString("dd-MM-yyyy_hh-mm")


        folderBrowserRespaldo.ShowDialog()
        folderGuardarRespaldo = folderBrowserRespaldo.SelectedPath

        Dim achivoRespaldo As String = folderGuardarRespaldo + "\Respaldo_" + fechaHoraRespaldo + ".zip"

        If File.Exists(archivoBaseDatos) Then

            Dim archiver As ZipForge = New ZipForge()
            Try
                ' The name of the ZIP file to be created
                achivoRespaldo = achivoRespaldo.Replace("\\", "\")

                archiver.FileName = achivoRespaldo

                archiver.OpenArchive(System.IO.FileMode.Create)

                archiver.BaseDir = Environment.CurrentDirectory + "\database"

                archiver.AddFiles(archivoBaseDatos)

                archiver.CloseArchive()

                Me.Dispose()
                MessageBox.Show("Respaldo Generado con Exito")

            Catch ae As ArchiverException
                MessageBox.Show("Error: No se ha podido crear el archivo de Respaldo")
            End Try

        Else
            MessageBox.Show("Error: No se ha podido encontrar el Archivo de Base de Datos Para realizar el Respaldo")
        End If



    End Sub

    Private Sub btnRestauracion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRestauracion.Click

        OpenFileDialogRestauracion.ShowDialog()

        Dim archivoRespaldo As String = OpenFileDialogRestauracion.FileName

        If System.IO.File.Exists(archivoBaseDatos) = True Then

            System.IO.File.Delete(archivoBaseDatos)

        End If

        Dim archiver As New ZipForge()
        Try
            ' The name of the ZIP file to unzip
            archiver.FileName = archivoRespaldo
            ' Open an existing archive
            archiver.OpenArchive(System.IO.FileMode.Open)
            ' Default path for all operations

            archiver.BaseDir = Environment.CurrentDirectory + "\database"
            ' Extract all files from the archive to C:\Temp folder
            archiver.ExtractFiles("*.*")
            ' Close archive
            archiver.CloseArchive()
            ' Catch all exceptions of the ArchiverException type
            Me.Dispose()
            MessageBox.Show("Respaldo Restaurado con Exito")

        Catch ae As ArchiverException
            MessageBox.Show("Error: No se ha podido encontrar el Archivo de Base de Datos Para realizar el Respaldo")
        End Try

    End Sub

End Class